using System.Collections.Generic;
using UnityEngine;

namespace Kayac
{
	internal class CutData
	{
		private struct PointinclusionKey
		{
			public Vector3 point;

			public Vector3 edgeBegin;

			public Vector3 edgeEnd;

			public Vector3 normal;

			public PointinclusionKey(Vector3 point, Vector3 edgeBegin, Vector3 edgeEnd, Vector3 normal)
			{
				this.point = default(Vector3);
				this.edgeBegin = default(Vector3);
				this.edgeEnd = default(Vector3);
				this.normal = default(Vector3);
			}
		}

		private struct VertexPair
		{
			public Vertex v0;

			public Vertex v1;

			public VertexPair(Vertex v0, Vertex v1)
			{
				this.v0 = null;
				this.v1 = null;
			}

			public override string ToString()
			{
				return null;
			}
		}

		private struct EdgePair
		{
			private PositionPair e0;

			private PositionPair e1;

			public EdgePair(PositionPair e0, PositionPair e1)
			{
				this.e0 = default(PositionPair);
				this.e1 = default(PositionPair);
			}

			public override string ToString()
			{
				return null;
			}

			public static int Compare(PositionPair a, PositionPair b)
			{
				return 0;
			}
		}

		public List<HalfEdge> faceEdges;

		public List<Vertex> faceVertices;

		private Dictionary<EdgeRun, float> edgeCrossValues;

		private Dictionary<EdgePair, bool> edgeIntersections;

		private Dictionary<PointinclusionKey, bool> pointInclusions;

		private Dictionary<VertexPair, Vertex> vertices;

		private Dictionary<PositionPair, VertexPosition> vertexPositions;

		private Dictionary<Vector3, float> signedDistances;

		public Vertex CreateLerpVertex(Vertex v0, Vertex v1, float blend)
		{
			return null;
		}

		public float GetCrossValue(Vector3 normal, Vector3 p0, Vector3 p1, Vector3 p2)
		{
			return 0f;
		}

		public bool GetEdgeIntersection(PositionPair edge0, PositionPair edge1)
		{
			return false;
		}

		public bool IsInFrontOfEdge(Vector3 point, Vector3 edgeBegin, Vector3 edgeEnd, Vector3 normal)
		{
			return false;
		}

		public float GetSignedDistance(HalfEdge e, Plane plane)
		{
			return 0f;
		}

		private bool TestEdgeIntersection(PositionPair e0, PositionPair e1)
		{
			return false;
		}
	}
}
